DCC
Direct Client-to-Client DCC is short for Direct Client-to-Client, it is an IRC sub-protocol enabling two IRC clients exchange data without IRC server. Introduction DCC is not a clear defined protocol, but a series of sub-protocols with certain standardized rules. It provides non-relayed chats to clients, which means they can chat privately without be monitored by IRC Server operators and send and receive data directly. And DCC uses direct TCP connections between the clients and the data can be served directly to a specific client without broadcasting all over the world. There are two difference ways to initialize DCC connections. One is to use CTCP to initiate a DCC session. The other is to initiate a DCC session is for the client to connect directly to the DCC server. History IrcII was the first IRC client to implement the CTCP and DCC protocols. The CTCP protocol was implemented by Michael Sandr of in 1990 for ircII version 2.1. The DCC protocol was implemented by Troy Rollo in 1991 for version 2.1.2. Specification Internet Relay Chat (IRC) is an application layer protocol that contributes to transfer textual messages. DCC is in an IRC oriented protocol. It can cover some limitations of the IRC server network and ensure secure chat connections. The following sections explain this process in more detail. Assume that A, B and D intend to chat online tougher. If there is no C as a transfer station, then the data that be generated by A would be sent separately to B and D. If there is C as a transfer station, first the data that be generated by A would be sent to C and then there data would be sent separately to B and D from C. obviously, when there is no transfer, everyone’s PC in the chat group would require to implement broadcast task. When there is a transfer, information broadcast tasks could be implemented by it. Thus, high-performance PCs may be served as transfer stations to provide service. This process forms IRC’s server-client model. In the above example, C provides services as a transfer station. However, with the number of clients or chat groups is increasing, C would be overwhelmed. Apart from the way of increasing the number of transfer stations, Direct Client-to-Client (DCC) may be implemented. There are two difference ways to initialize DCC connections. The most common way is to use CTCP to initiate a DCC. CTCP stands for Client-to-client protocol. It is a special type of communication between Internet Relay Chat (IRC) clients. Using this method, the CTCP is sent from one user, over the IRC network, to another user. Another way to initiate a DCC session is for the client to connect directly to the DCC server. In this way, no traffic would pass through the IRC network, what is meant by this is that it is not necessary to connect to an IRC network in order to initiate the DCC connection. Thus, DCC allows users to overcome some shortages of IRC server network and to avoid users’ data to be monitored by IRC server operators. Most importantly, there is no flood control, therefore, data can be sent at full speed and there is no dependence on server links (or load imposed on them). DCC applications DCC Chat It is the simplest and most standardized DCC sub-protocol. The Chat service enables users to chat with each other directly over a DCC connection rather than over the IRC network. This reduces IRC network load, allows to send larger number of textual messages at once. Moreover, compared to sending messages normally, there is no flooding control, which means more secure by not exposing the messages to the IRC servers in communication. DCC CHAT is normally initiated using a CTCP handshake. The user wishing to establish the connection sends the following CTCP to the target: DCC CHAT . DCC Send DCC Send is another standard sub-protocol. The basic DCC Send service allows transferring a file from the requesting client to the receiving client. The requesting client is always passive and the receiving client is always active. The original handshake consisted of the sender sending the following CTCP to the receiver: DCC SEND See also IRC (Internet Relay Chat) CTCP (Client-to-client protocol) 'References ' 1 Rollo, 2010, ‘A description of the DCC protocol’, irchelp.org, accessed 14 September 2014, . 2 Generated by nobody, 2009, ‘DCC negotiation and connection’ kvirc.de, accessed 23 September 2014, . 3 Myndzi, ‘DCC Protocol and Troubleshooting’, mircscripts.org, accessed 5 October, 2014, . Category:NOC imagery